home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / tools / cdc / deve.lzh / CDCSAMP.c < prev    next >
Text File  |  1996-05-21  |  5KB  |  193 lines

  1. /*
  2.  
  3.         さむさむさむぷる    CDC
  4.  
  5.  
  6.                     By 田圃(TNB製作所)
  7.  
  8. */
  9. #include    <tnb.h>
  10. #include    <a:\TNB\CDC\CDC_CLIB.h>
  11.  
  12. void    main()
  13. {
  14. int    i,j,b,x,y,cl;
  15. char    *trkna=0;
  16. int    ledsts=0;
  17. int    cdrmod=0;
  18. int    bc[4][7]={
  19.         0x36,0x40,0x3A,0x41,0x43,0x44,0x45,
  20.         0x13,0x3F,0x4E,0x4A,0x47,0x48,0x49,
  21.         0x3B,0x38,0x39,0x3D,0x4B,0x4C,0x4D,
  22.         1000,0x37,0x50,0x51,0x4F,0x52,1001
  23. };
  24. struct    CDC_STAT_PTR *PTR;
  25.  
  26. int    intor=0;    //員とろモード
  27. int    timb=0;        //時間記憶
  28. int    pltrk=0;        //時間記憶
  29. int    *protim;
  30.  
  31. if ( CDC_CHK()==0 ){
  32.     B_PRINT("CDC は常駐していません!!\r\n");
  33.     return;
  34. }
  35. cls();
  36. locate(0,5);
  37. B_PRINT(
  38.     "┌────────────────────┐\r\n"
  39.     "│┌──────────────────┐│\r\n"
  40.     "││                                    ││\r\n"        //7
  41.     "││                                    ││\r\n"
  42.     "│└──────────────────┘│\r\n"
  43.     "│  ┌─┐  ┌──────┐┌─-┐       │\r\n"
  44.     "│  │  │  │   00  00:00││   │CDC'│\r\n"        //11
  45.     "│  └─┘  └──────┘└─-┘       │\r\n"
  46.     "└────────────────────┘\r\n"
  47.     "       ┌──┬──┬──┬──┬──┬──┬──┐\r\n"
  48.     "       │ ★ │RAND│RPET│AUTO│ 7 │ 8 │ 9 │\r\n"    //15
  49.     "       ├──┼──┼──┼──┼──┼──┼──┤\r\n"
  50.     "       │ △ │ ■ │ > │ || │ 4 │ 5 │ 6 │\r\n"    //17
  51.     "       ├──┼──┼──┼──┼──┼──┼──┤\r\n"
  52.     "       │ << │ |< │ >| │ >> │ 1 │ 2 │ 3 │\r\n"    //19
  53.     "       ├──┼──┼──┼──┼──┼──┼──┤\r\n"
  54.     "       │MCLR│MDEL│MVIW│MSET│ 0 │ - │INTO│\r\n"    //21
  55.     "       └──┴──┴──┴──┴──┴──┴──┘\r\n"
  56. );
  57. CDC_KEYCANSEL( 0x01 );    //ESC CANSEL
  58. CDC_KEYCANSEL( 0x53 );    //登録 CANSEL
  59. CDC_KEYCANSEL( 0x36 );    //HOME CANSEL
  60.  
  61. mouse(4);
  62. mouse(1);
  63. PTR=CDC_STAT();
  64. locate(4,7);
  65. B_PRINT(PTR->CDNAME);        //CD名アドレス
  66. for(;;){
  67.     if ( intor ){
  68.         PTR=CDC_STAT();
  69.         if ( pltrk!=PTR->TRAKNO ){
  70.             pltrk=PTR->TRAKNO;
  71.             timb=ONtim_countD();
  72.         } elif ( PTR->PLAYINF==0x11 ){
  73.             if ( ONtim_margin( timb,400 ) ){
  74.                 timb=ONtim_countD();
  75.                 //CDC_INKEY(0x39);
  76.                 //while( CDC_SCSI_CHK()<0 );
  77.                 CDC_FADEOUT(0);
  78.             }
  79.         }
  80.     }
  81.     if ( KEYSNS() )
  82.         INKEY();
  83.     PTR=CDC_STAT();
  84.     if ( trkna!=PTR->TRAKNAME ){    /*    曲名が変わっているかをチェック!!    */
  85.         trkna=PTR->TRAKNAME;
  86.         locate(4,7);
  87.         B_PRINT("                                    ");
  88.         locate(4,7);
  89.         B_PRINT(PTR->CDNAME);        //CD名アドレス
  90.         locate(4,8);
  91.         B_PRINT("                                    ");
  92.         locate(4,8);
  93.         B_PRINT(PTR->LEDSTR);
  94.     }
  95.     if ( ledsts!=PTR->LEDSTAT ){    /*    LEDの状態が変わっているかをチェック!!! */
  96.         locate(6,11);
  97.         ledsts=PTR->LEDSTAT;
  98.         if ( ledsts&1 )        B_PRINT("■");
  99.         elif ( ledsts&2 )    B_PRINT(">");
  100.         elif ( ledsts&4 )    B_PRINT("||");
  101.         elif ( ledsts&8 )    B_PRINT(">>");
  102.         elif ( ledsts&16 )     B_PRINT("<<");
  103.         else            B_PRINT("  ");
  104.     }
  105.     i=CDC_MODE(-1);
  106.     if ( cdrmod!=i ){    /*    CDCのMODEが変わっているかをチェック!!! */
  107.         locate(6,11);
  108.         cdrmod=i;
  109.         locate(10,11);
  110.         if ( cdrmod&1 )        B_PRINT("⊂");
  111.         elif ( cdrmod&2 )    B_PRINT("1P");
  112.         else            B_PRINT("  ");
  113.  
  114.         locate(30,11);
  115.         if ( cdrmod&4 )        B_PRINT("R");
  116.         elif ( cdrmod&16 )    B_PRINT("B");
  117.         else            B_PRINT(" ");
  118.         if ( cdrmod&8 )        B_PRINT("M");
  119.         else            B_PRINT(" ");
  120.     }
  121.     locate(16,11);        /*時間など、LEDのかかれるはずの物を表示!*/
  122.     i=PTR->LEDTIME;
  123.     printf("%3d %3d:%02d",PTR->LEDTRAK,(i>>16),(i>>8)&0xFF);
  124.  
  125.     b=MS_GETDT();
  126.     if ( b&0x1 )
  127.         break;
  128.     if ( (b&0x100)==0 ){
  129.         CDC_INKEY(0);        /*    <-なにもなくループする時一度 0 を送っておくこと*/
  130.         continue;
  131.     }
  132.     y=(x=MS_CURGT())&0xFFFF;
  133.     x>>=16;
  134.     x=(x-8*8);
  135.     y=(y-(15*16-8));
  136.     if ( x<0 || y<0 ){
  137.         CDC_INKEY(0);        /*    <-なにもなくループする時一度 0 を送っておくこと*/
  138.         continue;
  139.     }
  140.     x=x/(6*8);
  141.     y=y/32;
  142.     if ( x>=7 || y>=4 ){
  143.         CDC_INKEY(0);        /*    <-なにもなくループする時一度 0 を送っておくこと*/
  144.         continue;
  145.     }
  146.     i=bc[y][x];
  147.     if ( i==0x40 ){        //RAND
  148.         CDC_MODE(2);
  149.     } elif ( i==0x3A ){    //REPET
  150.         CDC_MODE(1);
  151.     } elif ( i==0x41 ){    //AUTO
  152.         CDC_MODE(0);
  153.     } elif ( i==0x3F ){    //STOP
  154.         CDC_STOP();
  155.         CDC_INKEY(0x52);//LED初期化
  156.     } elif ( i==0x4E ){    //ENTER
  157.         if ( PTR->PLAYINF==0x12 ){
  158.             CDC_RESUME();
  159.         } elif ( PTR->PLAYINF!=0x11 ){
  160.             CDC_PLAY(0,0);
  161.         }
  162.     } elif ( i==0x4A ){    //PAUSE
  163.         if ( PTR->PLAYINF==0x11 ){
  164.             CDC_PAUSE();
  165.         }
  166.     } elif ( i==1000 ){    //MemClr
  167.         short *e;
  168.         e=CDC_PROG();    //CDC_PROG
  169.         *e=0;        //PROG=0
  170.         CDC_PROG();    //CDC_PROG
  171.         CDC_INKEY(0x52);//LED初期化
  172.     } elif ( i==1001 ){    //MemClr
  173.         intor^=1;
  174.         locate(32,11);        /*時間など、LEDのかかれるはずの物を表示!*/
  175.         B_PRINT( (intor==0)?" ":"I");
  176.     } else {
  177.         CDC_INKEY(i);
  178.     }
  179.     if ( i!=0x3B && i!=0x3D )
  180.         while( MS_GETDT()&0x100 );
  181.             /*
  182.                 [+][-]が押されていたら、マウスが話されるのを待たず
  183.                 リターン。でないとシーク出来ない。
  184.  
  185.                 [+][-]が押されているあいだ、CDC_INKEYに 0 送ってはだめ
  186.             */
  187. }
  188. locate(0,23);
  189. mouse(0);
  190. mouse(2);
  191. CDC_KEYCANSEL(-1);
  192. }
  193.